
//modificado..

package vista;

import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.LayoutStyle;
import javax.swing.ListModel;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import modelo.Categoria;
import modelo.DetalleProducto;
import modelo.Ingrediente;

/**
 * This code was edited or generated using CloudGarden's Jigloo
 * SWT/Swing GUI Builder, which is free for non-commercial
 * use. If Jigloo is being used commercially (ie, by a corporation,
 * company or business for any purpose whatever) then you
 * should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details.
 * Use of Jigloo implies acceptance of these licensing terms.
 * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
 * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
 * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class VentanaProducto extends javax.swing.JFrame{
	private JPanel jPanel1;
	private JTextField jtxtfechaRegistro;
	private JLabel jlblfechaRegistro;
	private JButton jbtnSalir;
	private JButton jbtnCancelar;
	private JButton jbtnAgregar;
	private JTable jTableIngredientes;
	private JButton jbtnImagen;
	private JLabel jlbldetalles;
	private JLabel jlblcodProducto;
	private JTextField jtxtcodIngrediente;
	private JLabel jlblIngrediente;
	private JTextField jtxtPrecio;
	private JTextField jtxtCodCategoria;
	private JButton jbtnRegistrar;
	private JLabel jlblListaIngredientes;
	private JComboBox jcmbNombreCategoria;
	private JScrollBar jScrollBarIngredienteProducto;
	private JPanel jPanIngredienteProducto;
	private JLabel jlblNombreCategoria;
	private JLabel jlblCodigoCategoria;
	private JLabel jlblCantidad;
	private JTextField jtxtCantidad;
	private JComboBox jcmbIngredientes;
	private JButton jbtnConsultar;
	private JTextField jtxtDescripcion;
	private JLabel jlblDescripcionProd;
	private JLabel jlblDatosProducto;
	private JTextField jtxtCodProducto;


	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				VentanaProducto instProd = new VentanaProducto();
				instProd.setLocationRelativeTo(null);
				instProd.setVisible(true);
			}
		});
	}
	
	public VentanaProducto() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
				this.setTitle("Gestionar Producto");
				getContentPane().setLayout(null);
				getContentPane().setBackground(new java.awt.Color(82,209,232));
				jPanel1 = new JPanel();
				getContentPane().add(jPanel1, "Center");
				jPanel1.setLayout(null);
				jPanel1.setBackground(new java.awt.Color(255,255,255));
				jPanel1.setBounds(12, 12, 727, 671);
				{
					jtxtCodProducto = new JTextField();
				}
				{
					jlblDescripcionProd = new JLabel();
					jlblDescripcionProd.setText("Descripcion:");
				}
				{
					jtxtDescripcion = new JTextField();
				}
				{
					jlblDatosProducto = new JLabel();
					jlblDatosProducto.setText("Datos del Producto");
				}
				{
					jbtnConsultar = new JButton();
					jbtnConsultar.setText("Consultar");
					jbtnConsultar.setBounds(636, 91, 76, 21);
				}
				{
					jbtnSalir = new JButton();
					jPanel1.add(jbtnSalir);
					jPanel1.add(jbtnConsultar);
					jbtnConsultar.setBackground(new java.awt.Color(82,209,232));
					jbtnConsultar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
					jPanel1.add(jtxtDescripcion);
					jPanel1.add(jtxtCodProducto);
					jPanel1.add(jlblDescripcionProd);
					jlblDescripcionProd.setBounds(312, 131, 82, 14);
					{
						jtxtCantidad = new JTextField();
					}
					{
						jlblCantidad = new JLabel();
						jlblCantidad.setText("Cantidad");
					}
					jtxtCodProducto.setBounds(488, 91, 133, 21);
					jtxtDescripcion.setBounds(488, 124, 133, 21);
					jbtnSalir.setText("Salir");
					jbtnSalir.setBounds(449, 601, 82, 27);
					jbtnSalir.setBackground(new java.awt.Color(82,209,232));
					jbtnSalir.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
				}
				{
					jlblfechaRegistro = new JLabel();
					jPanel1.add(jlblfechaRegistro);
					jPanel1.add(jlblDatosProducto);
					jlblDatosProducto.setBounds(75, 43, 546, 28);
					jlblDatosProducto.setBackground(new java.awt.Color(82,209,232));
					jlblDatosProducto.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
					jlblfechaRegistro.setText("Fecha del Registro:");
					jlblfechaRegistro.setBounds(312, 167, 127, 14);
				}
				{
					jtxtfechaRegistro = new JTextField();
					jPanel1.add(jtxtfechaRegistro);
					jtxtfechaRegistro.setBounds(488, 160, 133, 21);
				}
				{
					
					jcmbIngredientes = new JComboBox();

					jPanel1.add(jcmbIngredientes);
					jPanel1.add(jlblCantidad);
					jPanel1.add(jtxtCantidad);
					jtxtCantidad.setBounds(380, 368, 50, 22);
					{
						jlblCodigoCategoria = new JLabel();
						jPanel1.add(jlblCodigoCategoria);
						jlblCodigoCategoria.setBounds(312, 201, 158, 14);
						jlblCodigoCategoria.setText("Nombre de la Categoria:");
					}
					{
						jlblNombreCategoria = new JLabel();
						jPanel1.add(jlblNombreCategoria);
						jlblNombreCategoria.setText("Código de la Categoría:");
						jlblNombreCategoria.setBounds(312, 234, 153, 14);
					}
					{
						jPanIngredienteProducto = new JPanel();
						jPanel1.add(jPanIngredienteProducto);
						jPanIngredienteProducto.setBounds(184, 434, 347, 133);
						jPanIngredienteProducto.setLayout(null);
						{
							jScrollBarIngredienteProducto = new JScrollBar();
							jPanIngredienteProducto.add(jScrollBarIngredienteProducto);
							jScrollBarIngredienteProducto.setBounds(331, 0, 17, 133);
						}
					}
					{
						
						jcmbNombreCategoria = new JComboBox();
						jPanel1.add(jcmbNombreCategoria);
                        jcmbNombreCategoria.setBounds(488, 193, 133, 22);
					}
					{
						jbtnAgregar = new JButton();
						jPanel1.add(jbtnAgregar);
						jbtnAgregar.setText("Agregar");
						jbtnAgregar.setBounds(478, 366, 71, 24);
						jbtnAgregar.setBackground(new java.awt.Color(82,209,232));
						jbtnAgregar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
					}
					{
						jlblListaIngredientes = new JLabel();
						jPanel1.add(jlblListaIngredientes);
						jlblListaIngredientes.setText("Listado de Ingredientes del Producto");
						jlblListaIngredientes.setBounds(89, 401, 525, 21);
						jlblListaIngredientes.setBackground(new java.awt.Color(82,209,232));
						jlblListaIngredientes.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
					}
					{
						jbtnRegistrar = new JButton();
						jPanel1.add(jbtnRegistrar);
						jbtnRegistrar.setText("Registrar");
						jbtnRegistrar.setBounds(242, 602, 82, 25);
						jbtnRegistrar.setBackground(new java.awt.Color(82,209,232));
						jbtnRegistrar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
					}
					{
						jtxtCodCategoria = new JTextField();
						jPanel1.add(jtxtCodCategoria);
						{
							jtxtPrecio = new JTextField();
							jPanel1.add(jtxtPrecio);
							jtxtPrecio.setBounds(488, 261, 133, 22);
						}
						{
							jlblIngrediente = new JLabel();
							jPanel1.add(jlblIngrediente);
							jlblIngrediente.setText("Precio del Producto:");
							jlblIngrediente.setBounds(312, 268, 134, 15);
						}
						{
							jtxtcodIngrediente = new JTextField();
							jPanel1.add(jtxtcodIngrediente);
							{
								jlblcodProducto = new JLabel();
								jPanel1.add(jlblcodProducto);
								jlblcodProducto.setText("Codigo:");
								jlblcodProducto.setBounds(312, 98, 58, 15);
							}
							{
								jlbldetalles = new JLabel();
								jPanel1.add(jlbldetalles);
								jlbldetalles.setText("Detalles del Producto");
								jlbldetalles.setBounds(91, 323, 530, 30);
								jlbldetalles.setBackground(new java.awt.Color(82,209,232));
								jlbldetalles.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
							}
							{
								jbtnCancelar = new JButton();
								jPanel1.add(jbtnCancelar);
								jbtnCancelar.setText("Cancelar");
								jbtnCancelar.setBounds(343, 603, 87, 24);
								jbtnCancelar.setBackground(new java.awt.Color(82,209,232));
								jbtnCancelar.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
							}
							{
								jbtnImagen = new JButton();
								jbtnImagen.setIcon(new ImageIcon(getClass().getClassLoader().getResource("imagen.jpg")));
								jPanel1.add(jbtnImagen);
								jbtnImagen.setBounds(75, 95, 188, 160);
								jbtnImagen.setBackground(new java.awt.Color(82,209,232));
							}
							{
					
								jTableIngredientes = new JTable();
								jPanel1.add(jTableIngredientes);
								jTableIngredientes.setBounds(186, 434, 329, 133);
							}
							jtxtcodIngrediente.setBounds(562, 434, 44, 22);
							jtxtcodIngrediente.setVisible(false);
							jtxtcodIngrediente.setEditable(false);
						}
						jtxtCodCategoria.setText("codCateg");
						jtxtCodCategoria.setBounds(488, 227, 133, 22);
						jtxtCodCategoria.setEditable(false);
					}
					jlblCantidad.setBounds(278, 371, 65, 15);
					jcmbIngredientes.setBounds(91, 365, 175, 22);
				}
				{
					this.setSize(759, 725);
				}

		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	
	public void RemoverProductos(final AbstractTableModel VentanaDetalleProductoTablaModel) {
		jTableIngredientes.setModel(VentanaDetalleProductoTablaModel);

		jTableIngredientes.addMouseListener(new MouseAdapter() 
		{
	      public void mouseClicked(MouseEvent e) 
	      {
	         int fila = jTableIngredientes.rowAtPoint(e.getPoint());

	         int columna = jTableIngredientes.columnAtPoint(e.getPoint());

             if ((fila > -1) && (columna > -1))

             System.out.println(VentanaDetalleProductoTablaModel.getValueAt(fila,columna));

	      }
	   });
   }


	public void addListener(ActionListener actionListener) {
     	this.jcmbIngredientes.addActionListener(actionListener);
     	this.jcmbNombreCategoria.addActionListener(actionListener);
		this.jbtnConsultar.addActionListener(actionListener);
		this.jbtnRegistrar.addActionListener(actionListener);
		this.jbtnCancelar.addActionListener(actionListener);
		this.jbtnSalir.addActionListener(actionListener);
		this.jbtnAgregar.addActionListener(actionListener);
	
	}

	public void setCargarComboIngredientes(List<Ingrediente> ingredientes) {
        ComboBoxModel jcmbIngredientesOrdenModelModel =
        new DefaultComboBoxModel(ingredientes.toArray());
        jcmbIngredientes.setModel(jcmbIngredientesOrdenModelModel);
    }
	
	public void setcargarComboCategoria(List<Categoria> categorias) {
        ComboBoxModel jcmbCategoriaOrdenModelModel =
            new DefaultComboBoxModel(categorias.toArray());
        jcmbNombreCategoria.setModel(jcmbCategoriaOrdenModelModel);
	}

	public String getFechaRegistro() {
		return jtxtfechaRegistro.getText();
	}

	public void setJtxtfechaRegistro(JTextField jtxtfechaRegistro) {
		this.jtxtfechaRegistro = jtxtfechaRegistro;
	}

	public String getCantidad() {
		return jtxtCantidad.getText();
	}

	public void setJtxtCantidad(JTextField jtxtCantidad) {
		this.jtxtCantidad = jtxtCantidad;
	}

	public String getDescripcionProd() {
		return jtxtDescripcion.getText();
	}

	public String getJtxtCodCategoria() {
		return jtxtCodCategoria.getText();
	}

	public void setJtxtDescripcion(String valor) {
		this.jtxtDescripcion.setText(valor);
	}

	public String getCodProducto() {
		return jtxtCodProducto.getText();
	}

	public void setJtxtCodProducto(JTextField jtxtCodProducto) {
		this.jtxtCodProducto = jtxtCodProducto;
	}

	public String getCodCategoria() {
		return jtxtCodCategoria.getText();
	}

	public void setJtxtCodCategoria(String valor) {
		this.jtxtCodCategoria.setText(valor);
	}

	public String getPrecio() {
		return jtxtPrecio.getText();
	}

	public void setJtxtPrecio(JTextField jtxtPrecio) {
		this.jtxtPrecio = jtxtPrecio;
	}

	
	public void setCargarComboIngrediente(List<String> ingredientes) {
        ComboBoxModel jcmbIngredienteOrdenModelModel =
            new DefaultComboBoxModel(ingredientes.toArray());
        jcmbIngredientes.setModel(jcmbIngredienteOrdenModelModel);
	}
	
	public String getJcmbNombreCategoria() {
		return jcmbNombreCategoria.getSelectedItem().toString();
	}

	public void setCargarComboCategoria(List<String> categorias) {
        ComboBoxModel jcmbCategoriaOrdenModelModel =
            new DefaultComboBoxModel(categorias.toArray());
        jcmbNombreCategoria.setModel(jcmbCategoriaOrdenModelModel);
	}

	public String getJcmbIngredientes() {
		return jcmbIngredientes.getSelectedItem().toString();
	}

	public void setJcmbNombreCategoria(JComboBox jcmbNombreCategoria) {
		this.jcmbNombreCategoria = jcmbNombreCategoria;
		jcmbNombreCategoria.setBackground(new java.awt.Color(82,209,232));
		jcmbNombreCategoria.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
	}

	public void setJcmbIngredientes(JComboBox jcmbIngredientes) {
		this.jcmbIngredientes = jcmbIngredientes;
		jcmbIngredientes.setBackground(new java.awt.Color(82,209,232));
		jcmbIngredientes.setBorder(BorderFactory.createEtchedBorder(BevelBorder.LOWERED));
	}

	public String getcodIngrediente() {
		return jtxtcodIngrediente.getText();
	}

	public void setJtxtcodIngrediente(String valor){
		this.jtxtcodIngrediente.setText(valor);
	}

	public JTable getjTableIngredientes() {
		return jTableIngredientes;
	}

	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje);
	}

	public void borrarDatos(){
		jtxtfechaRegistro.setText("");
		jtxtCodProducto.setText("");
		jtxtDescripcion.setText("");
		jtxtCodCategoria.setText("");
		jtxtfechaRegistro.setText("");
		jtxtCantidad.setText("");
		jtxtPrecio.setText("");
	}
	
	public void setResultados(AbstractTableModel abstractTableModel) {
		jTableIngredientes.setModel(abstractTableModel);
	}
}